//package com.yang.demo.utils;
//
//import com.roncoo.common.MyException;
//import com.roncoo.fastdfs.*;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.io.ClassPathResource;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.ByteArrayInputStream;
//import java.io.IOException;
//import java.io.InputStream;
//
//
///**
// * fastDFS工具类
// *
// * @author xiaoyang
// * @since 1.0.0
// */
//@Slf4j
//@Configuration
//public class FastDFSUtils {
//
//    /**
//     * 初始化客户端
//     * ClientGlobal.int 读取配置问你件，并初始化对应的属性
//     */
//    static {
//        try {
//            String filePath = new ClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();
//            ClientGlobal.init(filePath);
//        } catch (Exception e) {
//            log.error("初始化FastDfS失败", e);
//        }
//    }
//
//    /**
//     * 生成tracker服务器
//     *
//     * @return trackerServer
//     */
//    private static TrackerServer getTrackServer() throws IOException {
//        TrackerClient trackerClient = new TrackerClient();
//        TrackerServer trackerServer = trackerClient.getTrackerServer();
//        return trackerServer;
//    }
//
//    /**
//     * 生成storage客户端
//     *
//     * @return
//     */
//    private static StorageClient getStorageClient() {
//        TrackerServer trackerServer = null;
//        StorageClient storageClient = new StorageClient(trackerServer, null);
//        return storageClient;
//    }
//
//
//    /**
//     * 文件上传
//     *
//     * @return
//     */
//    public static String[] uploadFile(MultipartFile file) {
//        String filename = file.getOriginalFilename();
//        log.info("要上传的文件名:{}", filename);
//        StorageClient storageClient = null;
//        //获取storage客户端
//        storageClient = getStorageClient();
//        //上传文件
//        String[] uploadResult = null;
//        //上传
//        try {
//            uploadResult = storageClient.upload_file(filename.getBytes(), filename.substring(filename.lastIndexOf(".") + 1), null);
//        } catch (IOException e) {
//            e.printStackTrace();
//        } catch (MyException e) {
//            log.error("上传文件失败", e);
//        }
//
//        if (null == uploadResult) {
//            log.error("上传失败", storageClient.getErrorCode());
//        }
//        return uploadResult;
//    }
//
//    /**
//     * 下载文件
//     *
//     * @param groupName
//     * @param remoteFileName
//     * @return
//     */
//    private static InputStream downloadFile(String groupName, String remoteFileName) {
//        StorageClient storageClient = null;
//        storageClient = getStorageClient();
//        try {
//            byte[] bytes = storageClient.download_file(groupName, remoteFileName);
//            ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
//            return inputStream;
//        } catch (Exception e) {
//            log.error("文件下载失败", e.getMessage());
//        }
//        return null;
//    }
//
//    /**
//     * 删除文件
//     *
//     * @param groupName
//     * @param remoteFileName
//     * @return
//     */
//    private static void deleteFile(String groupName, String remoteFileName) {
//        StorageClient storageClient = null;
//        storageClient = getStorageClient();
//        try {
//            storageClient.delete_file(groupName, remoteFileName);
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.error("删除失败", e.getMessage());
//        }
//    }
//
//    /**
//     * 获取文件信息
//     *
//     * @param groupName
//     * @param remoteFileName
//     * @return
//     */
//    private static FileInfo getFileInfo(String groupName, String remoteFileName) {
//        StorageClient storageClient = null;
//        storageClient = getStorageClient();
//        try {
//            return storageClient.get_file_info(groupName, remoteFileName);
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.info("文件信息获取失败", e.getMessage());
//        }
//        return null;
//    }
//
//    /**
//     * 获取文件路径
//     *
//     * @return
//     */
//    public static String getTrackerUrl() {
//        TrackerClient trackerClient = new TrackerClient();
//        TrackerServer trackerServer = null;
//        StorageServer storeStorage = null;
//        try {
//            trackerServer = trackerClient.getTrackerServer();
//            storeStorage = trackerClient.getStoreStorage(trackerServer);
//        } catch (Exception e) {
//            log.error("文件路径获取失败", e.getMessage());
//        }
//        return "http://" + storeStorage.getInetSocketAddress().getHostString() + ":8888/";
//    }
//}
